Media content providers provide media content to users via one or more computer networks. Generally, individual users (e.g., subscribers) receive media content from media content providers through one or more point to point network links and display the media content via a media player. The displaying of media content is referred to as playback.
Point to point network links have an established maximum throughput as measured in bits per second; the established maximum throughput owing to either underlying technology of the link or contracted service levels for the users. Actual throughput is the throughput rate at which the network and its point to point links actually convey the data from the content provider to the individual user. The actual throughput to the user may only be a fraction of the maximum throughput based on environmental conditions and competing network traffic.
Since the actual throughput may vary based on environmental conditions and competing network traffic, the rate at which a subscriber's media player must consume (i.e., receive and play) media over a network connection (be it a constant rate or an average rate) to achieve uninterrupted playback may exceed the actual network throughput bit rate from the media content provider. In these situations, the media player must pause to wait for more data from the media content provider to arrive before it can continue to playback the media content. This pause, often referred to as buffering or re-buffering can greatly diminish the enjoyment of media viewing. In other situations, the client device (i.e., the device used to display the media content to the subscriber), may have insufficient computing resources to decode and present the media content in “real-time.” In these situations, portions of the media content may be discarded, undecoded, or unplayed so that the media player may maintain proper playback of the received media content. The playback may also slow down to present all the data of the media content, but at a reduced rate. Either the dropping of data or the slowing of playback can reduce enjoyment, and if excessive, render the media content unwatchable.
To avoid buffering, dropping of data, or slowing of playback, media content providers may provide the user with either the option of selecting an alternate playback rate (e.g., high or low quality) based on their particular point-to-point network connection or selecting a default playback rate. However, during playback if the selected playback rate or default playback rate exceeds the network throughput or the computing resources of the client device displaying the media content, the user has to explicitly begin playback of the media content at a reduced playback rate which can cause startup delay associated with buffering and can require the user to start from the beginning of the media content. Needing to restart from the beginning every time the selected playback rate or default playback rate exceed the network throughput or the computing resources of the device can drastically reduce the enjoyment of the media content.
In another technique to avoid buffering, dropping of data, or slowing of playback, the media player transmits playback status to the media content provider. The playback status can be the buffering time, the number of frames dropped, or the rate of playback. The media content provider dynamically varies the bit rate of the media content to avoid buffering, dropping data, or slowing playback. However this technique has the negative consequence of requiring a separate content stream tailored for each recipient.